package com.southminority.ethnic.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.southminority.ethnic.column.ExcelColumn;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 获奖情况实体类
 * 
 * @author SouthMinority
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("award")
public class Award implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 获奖ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Schema(description = "获奖ID")
    @ExcelColumn(name = "获奖ID", columnWidth = 10, value = "1", hidden = true)
    private Long id;

    /**
     * 奖项名称
     */
    @Schema(description = "奖项名称")
    @ExcelColumn(name = "奖项名称", columnWidth = 25, nonNull = true, value = "省级教学成果奖")
    private String title;

    /**
     * 授予单位
     */
    @Schema(description = "授予单位")
    @ExcelColumn(name = "授予单位", columnWidth = 25, value = "教育厅")
    private String organization;

    /**
     * 获奖年份
     */
    @Schema(description = "获奖年份")
    @ExcelColumn(name = "获奖年份", columnWidth = 12, value = "2024")
    private Integer awardYear;

    /**
     * 获奖日期
     */
    @Schema(description = "获奖日期")
    @ExcelColumn(name = "获奖日期", columnWidth = 18, value = "2024/06/01 00:00:00")
    private LocalDate awardDate;

    /**
     * 奖项类别
     */
    @Schema(description = "奖项类别")
    @ExcelColumn(name = "奖项类别", columnWidth = 18, value = "教学成果")
    private String awardCategory;

    /**
     * 奖项级别：特等奖、一等奖、二等奖、三等奖等
     */
    @Schema(description = "奖项级别")
    @ExcelColumn(name = "奖项级别", columnWidth = 15, value = "一等奖")
    private String awardLevel;

    /**
     * 获奖描述/成果简介
     */
    @Schema(description = "获奖描述/成果简介")
    @ExcelColumn(name = "描述", columnWidth = 40, value = "成果简介示例")
    private String description;

    /**
     * 主要成就描述
     */
    @Schema(description = "主要成就描述")
    @ExcelColumn(name = "主要成就", columnWidth = 30, value = "主要成就示例")
    private String achievementDescription;

    /**
     * 获奖者（JSON格式）
     */
    @Schema(description = "获奖者")
    @ExcelColumn(name = "获奖者(JSON)", columnWidth = 30, value = "['张三','李四']")
    private String recipients;

    /**
     * 获奖项目名称
     */
    @Schema(description = "获奖项目名称")
    @ExcelColumn(name = "项目名称", columnWidth = 25, value = "民族语言研究")
    private String projectName;

    /**
     * 研究领域
     */
    @Schema(description = "研究领域")
    @ExcelColumn(name = "研究领域", columnWidth = 20, value = "语言学")
    private String researchField;

    /**
     * 证书编号
     */
    @Schema(description = "证书编号")
    @ExcelColumn(name = "证书编号", columnWidth = 20, value = "CERT-001")
    private String certificateNumber;

    /**
     * 证书图片URL
     */
    @Schema(description = "证书图片URL")
    @ExcelColumn(name = "证书URL", columnWidth = 40, value = "https://example.com/cert.png")
    private String certificateUrl;

    /**
     * 获奖照片URLs（JSON格式）
     */
    @Schema(description = "获奖照片URLs")
    @ExcelColumn(name = "照片URLs(JSON)", columnWidth = 40, value = "['https://example.com/p1.png']")
    private String photoUrls;

    /**
     * 新闻报道链接
     */
    @Schema(description = "新闻报道链接")
    @ExcelColumn(name = "新闻链接", columnWidth = 40, value = "https://news.example.com/a")
    private String newsUrl;

    /**
     * 关键词
     */
    @Schema(description = "关键词")
    @ExcelColumn(name = "关键词", columnWidth = 20, value = "民族;语言")
    private String keywords;

    /**
     * 影响范围：国际、国家、省部、地市等
     */
    @Schema(description = "影响范围")
    @ExcelColumn(name = "影响范围", columnWidth = 18, value = "省部级")
    private String influenceScope;

    /**
     * 经济效益
     */
    @Schema(description = "经济效益")
    @ExcelColumn(name = "经济效益", columnWidth = 20, value = "良好")
    private String economicBenefits;

    /**
     * 社会效益
     */
    @Schema(description = "社会效益")
    @ExcelColumn(name = "社会效益", columnWidth = 20, value = "显著")
    private String socialBenefits;

    /**
     * 排序
     */
    @Schema(description = "排序")
    @ExcelColumn(name = "排序", columnWidth = 10, value = "0", hidden = true)
    private Integer sortOrder;

    /**
     * 是否重点展示：1-是，0-否
     */
    @Schema(description = "是否重点展示：1-是，0否")
    @ExcelColumn(name = "重点展示(1/0)", columnWidth = 15, value = "1", hidden = true)
    private Integer isFeatured;

    /**
     * 状态：1-启用，0-禁用，-1-已删除
     */
    @Schema(description = "状态：1-启用，0-禁用，-1-已删除")
    @ExcelColumn(name = "状态(1启用/0禁用)", columnWidth = 15, value = "1", hidden = true)
    private Integer status;

    /**
     * 创建时间
     */
    @Schema(description = "创建时间")
    @ExcelColumn(name = "创建时间", columnWidth = 25, hidden = true)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @Schema(description = "更新时间")
    @ExcelColumn(name = "更新时间", columnWidth = 25, hidden = true)
    private LocalDateTime updateTime;
} 
